home *** CD-ROM | disk | FTP | other *** search
/ PC World Interactive 4 / PC World Interactive 4.iso / online / appbar.EXE / csrc / appbar.h < prev    next >
C/C++ Source or Header  |  1996-09-23  |  6KB  |  158 lines

  1. #ifndef APPBAR_H
  2. #define APPBAR_H
  3.  
  4. #define STRICT
  5. #include <windows.h>            
  6. #include <mmsystem.h>           // PlaySound
  7. #include <shellapi.h>           // ShellExecute and SHAppBarMessage
  8. #include <stdio.h>              // sprintf, fopen, fclose, fread, fwrite
  9. #include <time.h>               // tzset, time, localtime
  10. #include <io.h>                 // _filelength
  11. #include <direct.h>
  12. #include <shlobj.h>
  13. #include "resource.h"
  14. #include "strings.h"
  15.  
  16. #define AB_HEIGHT            (GetSystemMetrics(SM_CYMENU)+5)
  17. #define AB_WIDTH            sys_vars.width
  18. #define PATH_SIZE            128
  19. // Colors for battery percentage
  20. #define RED                 RGB(192,0,0)
  21. #define BRIGHT_RED          RGB(255,0,0)
  22. #define GREEN               RGB(0,128,0)
  23. #define YELLOW              RGB(255,255,0)
  24. // Version number for datafile format
  25. #define APPBAR_FILE_VERSION 103
  26. #define TRUE                1
  27. #define FALSE               0
  28. #define SYNC_TIMER            0xD000
  29. #define TIME_UPDATE         0xE000
  30. #define HIDE_TIMER          0xF000
  31. #define WM_APPBAR           (WM_USER+1)
  32. #define SEPARATOR_STRING    "-------"
  33. #define UP                  VK_UP       // These 2 are needed for
  34. #define DOWN                VK_DOWN     // switch_places()
  35.  
  36. #ifdef _WINNT       // overrides for NT differences
  37.     #undef AB_HEIGHT
  38.     #define AB_HEIGHT (GetSystemMetrics(SM_CYMENU)+10)
  39. #endif
  40.  
  41. // Structures and classes
  42.  
  43. struct user_options {
  44.     BOOL stayontop;                 // Does ab always float on top?
  45.     BOOL chime;                     // Play sound every hour?
  46.     BOOL date;                      // Display date on menu bar?
  47.     BOOL memory;                    // Display free memory?
  48.     BOOL bottom;                    // Place AppBar at bottom of screen?
  49.     BOOL autohide;                  // Auto hide AppBar?
  50.     BOOL time;
  51.     BOOL user;
  52.     char wavfile[PATH_SIZE];        // Path/filename of WAV file to play
  53. };
  54.  
  55. struct ab_vars {
  56.     int width;                  // Screen width  (i.e. 800)
  57.     int height;                 // Screen height (ie 600)
  58.     BOOL power;
  59.     BOOL newshell;
  60.     BOOL battery;               // AC or battery?
  61.     char user[30];              // Optional username
  62.     char appfile[PATH_SIZE];    // DAT filename
  63. };
  64.  
  65. class app_struct {
  66.   public:
  67.     char appexe[PATH_SIZE],     // Path and name of executable
  68.          workingdir[PATH_SIZE], // Working dir
  69.          params[90],            // command line parameters
  70.          appname[30];           // Name of application for menubar
  71.     DWORD show;                 // Maximize, Minimize, etc.
  72.     BOOL separator;             // Separator before this app?
  73.     app_struct *nextapp;        // Pointer to next app
  74.     app_struct *prevapp;
  75.     
  76.     app_struct();
  77.     ~app_struct();
  78. };
  79.  
  80. class menu_struct {
  81.   public:
  82.     char menuname[30];              // name of menu
  83.     int numapps;                    // number of apps in menu
  84.     menu_struct *nextmenu;          // pointer to next menu
  85.     menu_struct *prevmenu;
  86.     app_struct *nextapp;            // pointer to first app in menu
  87.     
  88.     menu_struct();
  89.     ~menu_struct();
  90. };
  91.  
  92. // Used to find appliction structure based on a user-selected menu item
  93.  
  94. struct app_list {
  95.     int appId;                      // menuID related to app (1000*m +a)
  96.     app_struct *app;                // related app structure
  97.     app_list *next;
  98. };                         
  99.  
  100. // Used to make deleting and updating menu bar easier
  101.  
  102. struct menu_list {
  103.     HMENU menuId;                   // Menu resource # related to menu
  104.     menu_struct *menu;
  105.     menu_list *next;
  106. };
  107.  
  108. // used to pass new menu or app data to window procedure
  109.  
  110. struct hack {
  111.     app_struct *app;
  112.     menu_struct *menu;
  113.     BOOL isnew;
  114. };
  115.  
  116. extern int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR cmdline, int cmdshow);
  117. extern LRESULT CALLBACK AppBarWinProc(HWND hWnd, UINT msg, WPARAM lParam, LPARAM wParam);
  118. extern LRESULT CALLBACK AboutProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
  119. extern LRESULT CALLBACK EditProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
  120. extern LRESULT CALLBACK OptionsProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
  121. extern LRESULT CALLBACK AppProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
  122. extern LRESULT CALLBACK MenuProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
  123. //extern LRESULT CALLBACK RunProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
  124. extern BOOL execute_application(app_struct *app);
  125. extern void error(char *err_msg);
  126. extern BOOL init_app(void);
  127. extern void save_reg_keys(void);
  128. extern void make_new_reg_key(HKEY root);
  129. extern void get_reg_keys(user_options *args);
  130. extern void HideAppBar(BOOL hide);
  131. extern BOOL setup_win(void);
  132. extern BOOL read_in_apps(void);
  133. extern BOOL create_appbar(void);
  134. extern BOOL show_appbar(void);
  135. extern void exit_appbar(BOOL error_exit);
  136. extern void release_app_memory(void);
  137. extern void killmenu(menu_struct *menu);
  138. extern void destroy_window(void);
  139. extern void save_menus(void);
  140. extern void ab_message(char *msg);
  141. extern void update_menus(void);
  142. extern void kill_applist(void);
  143. extern void killapp(app_struct * app);
  144. extern app_struct * find_appId(UINT menuId);
  145. extern app_struct * find_app(app_struct *apps, char *app_sel);
  146. extern menu_struct * find_menu(char * menu_sel);
  147. extern BOOL modify_time(void);
  148. extern BOOL switch_places_m(menu_struct *menu, int dir);
  149. extern BOOL switch_places_a(app_struct *app, int dir);
  150. extern void DoBrowse(int type, HWND parent);
  151. extern void draw_buttons(DRAWITEMSTRUCT *dw, UINT CtlID);
  152. extern void parse_cmd_args(void);
  153. extern void SlideWindow(int newy);
  154. extern HRESULT GetLinkInfo(HWND hWnd, LPSTR lpszLinkName, LPSTR lpszPath, LPSTR lpszDir, LPSTR lpszArgs, int *show);
  155. extern BOOL IsLink(char *filename);
  156. extern void SyncTime(void);
  157. #endif
  158.